The present application relates to software development and more specifically to systems, methods, and patterns for implementing enterprise software applications.
Many types of business logic are implemented by enterprise software applications. For example, CRM (Customer Relationship Management) applications often implement business logic to perform price quotations and order capture for customers. For the price quotation business logic, a pricing engine may be implemented to receive input data (e.g., product name or product ID) and to return output data that includes the price for each product in the input data.
A sales catalog is a set of data commonly accessed by CRM applications. The sales catalog may be accessed, for example, by the business logic that is used to perform price quotations and order capture for customers.
The data within the sales catalog may be consumed by multiple different types and/or categories of users within the enterprise software system. The problem is that the format/organization of the data within the sales catalog may be different or incompatible from the format/organization of that data that is needed or expected by one or more of the consumers of that data.
For example, consider that a typical CRM system organizes its data according to product group hierarchies, e.g., as shown in the product hierarchy 302 in FIG. 3. Based on a customer business model, the hierarchy 302 may be used for various purposes, such as sales/marketing purposes (e.g., to handle opportunities, orders, or partner applications). The problem is that the external catalog hierarchy 302 may differ from the one used for internal processes by an organization. For example, an organization may employ a rollup catalog hierarchy 304 for various internal purposes (e.g., territory, assignment, forecasting), where the rollup catalog 304 has a different hierarchical structure from the external catalog hierarchy 302. These differences between the hierarchies mean that the data organized for the external catalog 302 (e.g., for selling purposes) may not be compatible with the hierarchies 304 used for the internal processes.
As is evident, there is a need for an improved approach for manage incompatible data organizations for enterprise applications.